﻿using System;
using System.ComponentModel;
using System.Windows;

namespace WhiteFlow.DevTrackingTool.Common.Contracts
{
    /// <summary>
    /// Contract for an IMessageDialogService service.
    /// </summary>
    public interface IMessageDialogService
    {
        /// <summary>
        /// Gets or sets the dialog control.
        /// </summary>
        /// <value>
        /// The dialog control.
        /// </value>
        IMessageDialog Dialog { get; set; }

        /// <summary>
        /// Shows the specified message to the user.
        /// </summary>
        /// <param name="message">The message to display.</param>
        /// <param name="title">The dialog's title.</param>
        /// <param name="callback">The callback to execute when closing the dialog.</param>
        /// <param name="buttons">The buttons to show.</param>
        /// <param name="image">The image to show.</param>
        /// <param name="e">The <see cref="System.ComponentModel.CancelEventArgs"/> instance containing the event data.</param>
        void ShowMessage(string message, string title, Action<MessageBoxResult> callback, MessageBoxButton buttons = MessageBoxButton.OK, MessageBoxImage image = MessageBoxImage.None, CancelEventArgs e = null);
    }
}